System and methods for optimizing buffering heuristics in media

ABSTRACT

An algorithm to analyze previous attempts by the a user of a media player and either presents the media player with all data, a subset of data or even a hint, enabling the boot of the heuristics engine with the ability to custom-target initial startup methods of the media engine.

CROSS REFERENCE To RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No. 13/085,363 filed on Apr. 12, 2011 which claims the benefit of priority to and incorporates by reference in their entireties U.S. Provisional Patent Application No. 61/323,790 filed Apr. 13, 2010 and to U.S. Provisional Patent Application No. 61/323,800 filed Apr. 13, 2010. All of the aforementioned applications are hereby incorporated by reference in their entireties as if fully set forth herein.

FIELD OF THE INVENTION

Disclosure herein is generally directed to the field buffering heuristics in media assets.

BACKGROUND OF THE INVENTION

Recently a new type of digital media encoding has become available. The encoding process, tag named “Smooth” or “Smooth Video,” means that video is encoded in more than one bitrate and that every 2-3 seconds of video in each bitrate can be grouped together. These groupings are called “fragments”. By enabling such encoding to exist, playback within a network viewing system can select the best possible fragment based on available bandwidth, quality of service or QOS settings, central processing unit or CPU utilization and other factors. Additionally, if the media player changes bitrates between fragments, the playback is smooth—video playback isn't halted, jerky or display other artifacts during transition between the borders of each fragment. The algorithms for selecting which fragment to download next into the media player are called the “heuristics” components. Current Smooth Video heuristics are closed to end-user modifications, have been optimized for long form video, do not utilize any historical playback data and fail to provide a high quality end-user experience when playing multiple high quality short form media clips in a row.

Previously, where there is only one bitrate available (such as with YouTube and other such video solutions), there are no heuristics. These systems simply download the single available bitrate content as fast as conditions permit. The only heuristics for Smooth Video released thus far have been by Microsoft Corporation. Microsoft's heuristics have made certain tradeoffs resulting in compromised performance when handling short form video. The existing heuristics assume that the media being played back is long form; they start from the lowest bitrate video and increase, per fragment, until the proper optimized bitrate video matching current end user conditions is found. Every time a new clip is loaded, the heuristics, being driven by the statistics of playback, are cleared and reset. With each new clip, the heuristics start over by playing the lowest bit rate video first and ramping up. By playing the lowest quality bitrate video first, the user is presented with typically 2-3 fragments or more of video which plays at very low quality. When the media clip is short, perhaps only 4-30 fragments long, the user is presented with 2 seconds of low quality video, even if their connection to the Internet would normally support high quality video during long form video playback.

In brief, current methods utilize no historical data, either per-network, per-application or per-user, and, as such, information from previous playback is ignored during subsequent playback. Additionally, load time is sacrificed for quality. The results are that Smooth Video does not work satisfactorily with highlight reels inside of a network player.

DETAILED DESCRIPTION OF THE PARTICULAR EMBODIMENTS

Disclosure below relates to enabling smooth video playback of a group of media files where the transition between each file be smooth and at have the highest quality available. The present invention relates to selecting the best bitrate and to filling the playback buffer in the most optimized way so as to avoid quality loss, thus enhancing the end-user experience.

In accordance with the particular embodiments of the present invention, there is provided a new heuristics engine which sacrifices initial load time for quality of playback, while also utilizing previous user-based playback statistics as hints on how to optimize successive items. Additionally, in accordance to this invention, the heuristics system will continue to fill the media player's buffer across playlist elements without waiting for the current element to be finished. Short form media, and particularly sports or other high definition media, requires heuristics which optimize the end-user experience. The quality of highlight reel playback (e.g. custom reel playback consisting of short form video segments selected by end users, content providers or other means that yield assemblage of short form video segments) is critical to an acceptable end-user experience.

In one particular embodiment for optimizing the buffering heuristics in microprocessor executable or computer media, the systems and methods utilize a computer executable program having instructions to implement a method to smooth video playback of a media file. The method includes selecting a media player, selecting a media file for smoothing, selecting at least one heuristics engine compatible with the media player, selecting a buffering engine compatible with the media file, buffering the media file, and creating a new heuristics engine to optimize playback of the buffered media file on the selected media player.

The particular embodiments utilizes an algorithm to analyze previous attempts by the same user and either presents the media player with all data, a subset of data or even just a simple hint, enabling the boot of the heuristics engine with the ability to custom-target the initial startup methods. This may be handled in one of two ways. This provides for implementation of one heuristics engine per media element or utilizes one or more heuristics engines that is/are persistent across multiple media elements. The result is that the heuristics engine is responsible for correctly managing the system to optimize the end user's viewing experience. The buffering engine, driven by the heuristics sub-system, will continue to buffer data, even across media asset borders, regardless of where playback is inside the media player. The buffering engine can also be configured to store each fragment locally in a database style cache. The user can be presented with options on the size and aggressiveness of the disk caching system. When utilizing the cache, the buffering engine will either request a higher quality fragment, if one is available, and if the heuristics engine stats indicate there is time to do so, or alternately, will utilize the fragment previously cached. When a clip is done buffering, it may still be playing in the media player. The media player will then create a new heuristics system and buffering engine, yet transfer relevant data from the current media's components. In this fashion, buffering can occur across media boundaries and playback of the next clip is smooth and without the compromise of quality that current blank slate heuristics system exhibit that are standard in the industry today.

While the preferred embodiment of the invention has been illustrated and described, as noted above, many changes can be made without departing from the spirit and scope of the invention. Accordingly, the scope of the invention is not limited by the disclosure of the preferred embodiment. Instead, the invention should be determined entirely by reference to the claims that follow. 

The embodiments of the invention in which an exclusive property or privilege is claimed are defined as follows:
 1. A computer executable program having instructions to implement a method to smooth video playback of a media file, the method comprising: selecting a media player; selecting a media file for smoothing; selecting at least one heuristics engine compatible with the media player; selecting a buffering engine compatible with the media file; buffering the media file; and creating a new heuristics engine to optimize playback of the buffered media file on the selected media player. 